package com.xique.park.bean.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 结算记录
 *
 * @author WLD
 */
@Data
public class ParkSettlementRecord implements Serializable {

    private Long id;

    /**
     * 项目ID
     */
    private Long parkId;

    /**
     * 结算日期
     */
    private String settlementDate;

    /**
     * 结算类型
     * <p>
     * 01：退款
     * 02：支付
     */
    private String settlementType;

    /**
     * 订单笔数
     */
    private Integer orderCount;

    /**
     * 订单金额（分）
     * <p>
     * 每笔订单金额总和
     */
    private Long orderAmount;

    /**
     * 支付金额（分）
     * <p>
     * 若结算类型为普通 则为当日的支付金额之和
     * 若结算类型为退款 则为当日退款金额之和
     */
    private Long payAmount;

    /**
     * 手续费（分）
     * <p>
     * 若结算类型为普通 则手续费为（每笔订单的支付金额 * 手续费率）之和
     * 若结算类型为退款 则为（每笔订单的退款金额 * 手续费率）之和
     */
    private BigDecimal serviceCharge;

    /**
     * 应结算金额（分）
     * <p>
     * 支付金额-手续费
     */
    private Long settlementAmount;

    /**
     * 打款状态
     * <p>
     * 1:未结算（未获取到当日结算数据）
     * 2:结算成功 （所有订单都结算成功）
     * 3:结算异常 （>=一笔订单结算非成功）
     */
    private Integer paymentStatus;

    /**
     * 打款金额（分）
     */
    private Long paymentAmount;

    private Date createTime;

    private Date updateTime;

    /**
     * 项目名称
     */
    @TableField(exist = false)
    private String parkName;

}
